package thread;
/**
 *
 *  多线程
 *  线程:一个单一的顺序执行流程就是一个线程
 *  多线程:多个顺序执行流程"同时"执行
 *
 *   线程的第一种创建方式:
 *  1:继承Thread
 *   2:重写run方法定义线程执行的任务代码
 *   3:调用线程的start方法将线程启动
 *
 * 第一种创建线程的优点:结构简单，利于匿名内部类形式创建
 * 缺点:
 * 1:由于java是单继承的，这导致如果继承了线程就无法再继承其他类去复用方法
 * 2:创建线程的同时重写run方法将任务定义在线程中，这导致线程与任务存在必然的耦合关系
 *   不利于线程的重(chong)用。
 */
public class ThreadDemo2 {
    public static void main(String[] args) {
        //单独实例化任务
        Runnable r1 =  new MyRunnable1();
        Runnable r2 =  new MyRunnable2();
        //创建线程
        Thread  t1 = new Thread(r1);
        Thread  t2 = new Thread(r2);
//        启动线程
        t1.start();
        t2.start();
    }

}
class MyRunnable1 implements Runnable{
        public void run(){
            for (int i = 0; i < 1000; i++) {
                System.out.println("你是谁啊");
            }
        }
}
class MyRunnable2 implements Runnable{
    public void run (){
        for (int i = 0; i < 1000; i++) {
            System.out.println("查水表的");
        }
    }
}